package main

import (
	"flag"
	"fmt"
	"os"
)

func main() {
	// 定义命令行参数变量
	var fileName string
	var action string
	var content string
	// 绑定命令行参数到变量
	flag.StringVar(&fileName, "file", "", "指定要操作的文件名")
	flag.StringVar(&action, "action", "", "指定操作类型，read或write")
	flag.StringVar(&content, "content", "", "指定写入的内容，仅在action为write时使用")
	// 解析命令行参数
	flag.Parse()
	// 检查是否提供了必要的参数
	if fileName == "" || action == "" {
		fmt.Println("请提供必要的参数：-file和-action")
		flag.Usage()
		return
	}
	switch action {
	case "read":
		readFile(fileName)
	case "write":
		if content == "" {
			fmt.Println("当action为write时，必须提供-content参数")
			return
		}
		writeFile(fileName, content)
	default:
		fmt.Println("不支持的操作类型，请使用read或write")
	}
}

// 读取文件内容的函数
func readFile(fileName string) {
	data, err := os.ReadFile(fileName)
	if err != nil {
		fmt.Printf("读取文件失败：%v\n", err)
		return
	}
	fmt.Println(string(data))
}

// 写入文件内容的函数
func writeFile(fileName string, content string) {
	err := os.WriteFile(fileName, []byte(content), 0644)
	if err != nil {
		fmt.Printf("写入文件失败：%v\n", err)
		return
	}
	fmt.Println("文件写入成功")
}
